package quanlyhochieu.soluotnguoidi;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import dbutil.ConnectDB;

import quanlydoanra.utils.Utils;
import quanlyhochieu.soluongcapmoi.HoChieu;
import utils.DateUtils;

public class LuotNguoiDi {
	private String error;
	private String nuocDen;
	private java.util.Date ngayBatDau;
	private java.util.Date ngayKetThuc;
	private List<NguoiDi> listNguoiDi;
	private boolean hienThiDSNguoiDi = true;
	private int tongSoLuong;
	private String pathToListPerson ="/qlhochieu/soluotnguoidi/empty.xhtml";
	
	public LuotNguoiDi(){
		
	}

	public String getError() {
		return error;
	}

	public void setError(String error) {
		this.error = error;
	}

	public String getNuocDen() {
		return nuocDen;
	}

	public void setNuocDen(String nuocDen) {
		this.nuocDen = nuocDen;
	}

	public java.util.Date getNgayBatDau() {
		return ngayBatDau;
	}

	public void setNgayBatDau(java.util.Date ngayBatDau) {
		this.ngayBatDau = ngayBatDau;
	}

	public java.util.Date getNgayKetThuc() {
		return ngayKetThuc;
	}

	public void setNgayKetThuc(java.util.Date ngayKetThuc) {
		this.ngayKetThuc = ngayKetThuc;
	}

	public List<NguoiDi> getListNguoiDi() {
		return listNguoiDi;
	}

	public void setListNguoiDi(List<NguoiDi> listNguoiDi) {
		this.listNguoiDi = listNguoiDi;
	}

	public boolean isHienThiDSNguoiDi() {
		return hienThiDSNguoiDi;
	}

	public void setHienThiDSNguoiDi(boolean hienThiDSNguoiDi) {
		this.hienThiDSNguoiDi = hienThiDSNguoiDi;
	}

	public int getTongSoLuong() {
		return tongSoLuong;
	}

	public void setTongSoLuong(int tongSoLuong) {
		this.tongSoLuong = tongSoLuong;
	}

	public void setPathToListPerson(String pathToListPerson) {
		this.pathToListPerson = pathToListPerson;
	}

	public String getPathToListPerson() {
		if(this.hienThiDSNguoiDi == false) this.pathToListPerson = "/qlhochieu/soluotnguoidi/empty.xhtml";
		else this.pathToListPerson = "/qlhochieu/soluotnguoidi/listPerson.xhtml";
		return pathToListPerson;
	}
	public boolean checkValue(){
		boolean result = false;
		String str ;
		if(this.nuocDen == null || this.nuocDen.equals("") ||
				this.ngayBatDau == null || this.ngayBatDau.equals("") || 
				this.ngayKetThuc == null || this.ngayKetThuc.equals("")){
		result = false;
		this.setError("Nhập đầy đủ thông tin có dấu (*) phía trước");
			}
		else if(Utils.kiemTraNgay(this.ngayBatDau, this.ngayKetThuc) == false){
			this.setError("Ngày bắt đầu phải trước ngày kết thúc! ");
			result = false;
			
		}else {
			this.setError("");
			result = true;
		}
		return result;
	}
	public  List<NguoiDi> chooseListNguoiDi(){
		List<NguoiDi> list = new ArrayList<NguoiDi>();
		if(this.checkValue()){		
		String SQL = "select * from dsnguoidi as DS, doanra as DR , canhan as CN where DR.madoan = DS.iddoanra and CN.cmnd = DS.cmnd";
		SQL+=" and DR.ngaydi > '"+DateUtils.utilDateToSqlDate(this.ngayBatDau)+"' ";
		SQL+=" and DR.ngayve < '"+DateUtils.utilDateToSqlDate(this.ngayKetThuc)+"' ";
		SQL+=" and DR.nuocden like '%"+this.nuocDen+"%'";
			
		System.out.println("SQL "+SQL);
		ArrayList<HashMap<String, Object>> array = ConnectDB.getDataTypeList(SQL);
		this.setTongSoLuong(array.size());
		if (array.size() > 0) {
			HashMap<String, Object> hash = new HashMap<String, Object>();
			int stt = 0;
			for (int i = 0; i < array.size(); i++) {
				stt = i + 1;
				hash = (HashMap<String, Object>) array.get(i);
				NguoiDi nguoiDi = new NguoiDi();
				nguoiDi.setStt(stt);
				nguoiDi.setCmnd(hash.get("cmnd").toString());
				nguoiDi.setCoQuan(hash.get("coquan").toString());
				nguoiDi.setSoHC(hash.get("sohc").toString());
				nguoiDi.setTen(hash.get("ten").toString());
				nguoiDi.setThoiGianDi(DateUtils.formatDate(hash.get("ngaydi").toString())+"-"+DateUtils.formatDate(hash.get("ngayve").toString()));
				nguoiDi.setNuocDen(hash.get("nuocden").toString());
				
				list.add(nguoiDi);
				this.setError("");
			}
		}
		}
		return list;
	}
	
	public String reset(){		
		this.ngayBatDau = null;
		this.ngayKetThuc = null;
		this.nuocDen = null;
		this.listNguoiDi = null;
		return "thongkeluotnguoidi";
	}
	public String thongKeSoLuongNguoiDi(){
		this.setListNguoiDi(this.chooseListNguoiDi());
		return "thongkeluotnguoidi";
	}
	
}
	